Skip to main content

CNC-Beispiel 09: Verwendung der Werkzeuglängenkorrektur

Sehen Sie hierzu das Beispielprojekt CNC09_ToolLengthCorr.project im Installationsverzeichnis von CODESYS unter ..\CODESYS SoftMotion\Examples.

Dieses Beispiel zeigt wie mit Hilfe des Bausteins SMC_ToolLengthCorr die Länge eines Werkzeugs kompensiert werden kann.

Für weitere Informationen zum Thema Werkzeuglängenkorrektur siehe: Vorverarbeitung

Applikation

Für das Beispiel wird eine Gantry3-Kinematik zusammen mit einer angehängten Orientierungsachse (AxisA) verwendet, die sich um die Z-Achse drehen kann. An der Orientierungsachse ist wiederum ein Werkzeug mit einer Länge von 2 Einheiten in Z-Richtung befestigt.

Es soll ein einfaches CNC-Programm verfahren werden. Dieses ist als externe Datei CNC.cnc im Projekt hinterlegt und kann mit einem Texteditor geöffnet werden. Im CNC-Programm wird zunächst die Werkzeuglängenkorrektur mit Hilfe des G-Codes G43 aktiviert. Die Parameter I, J und K entsprechen dabei dem Versatz in X-, Y- und Z-Richtung. Anschließend werden 3 Punkte in der XY-Ebene angefahren. Bei der Bewegung zum letzten Punkt wird zusätzlich die Zusatzachse A um 90 Grad gedreht.

N000 G43 I0 J0 K2 (Activate tool length correction with tool offset X=0 Y=0 Z=2)
N010 G01 X10 F10 E100 E-100
N020 G03 Y10 R5N030 G01 X0 A90

Die Applikation besteht aus mehreren Teilen. Im Programm CNC_PreparePath wird das CNC-Programm CNC.cnc als Datei von der Steuerung eingelesen und vorverarbeitet. Im Programm CNC werden zunächst, wie bei den anderen Beispielen auch, die Antriebe eingeschaltet. Anschließend erfolgt die Interpolation des zuvor eingelesenen CNC-Programms. In jedem Zyklus gibt der Interpolator eine Sollposition (piSetPosition) und den aktuellen Versatz des Werkzeugs (adToolLength) aus. Diese Informationen benötigt der Baustein SMC_ToolLengthCorr, um die angegebene Werkzeuglänge zu kompensieren. Die kompensierte Position wird anschließend noch transformiert und letztlich mit Hilfe der Bausteine SMC_ControlAxisByPos an die Achsen übergeben.

Tipp

Das Programm ist nahezu identisch zu den anderen Beispielen. Lediglich der Baustein SMC_ToolLengthCorr wurde nach dem Interpolator und vor der Transformation eingefügt, um die vom Interpolator ausgegebene Sollposition zu bearbeiten.

sm_img_cnc_example9_1.png

Inbetriebnahme

Übersetzen Sie das erstellte Programm und starten Sie es. Das Programm führt die CNC-Bewegung aus, sobald der Eingang CNC_PreparePath.xStart gesetzt wird. Sie können diese Variable in der Applikation oder in der Visualisierung per Klick auf die Schaltfläche Start setzen. Wenn das Programm vollständig abgefahren ist, können Sie es durch eine erneute steigende Flanke wieder starten.

Beachten Sie während der Ausführung des CNC-Programms die Ausgaben des Interpolators (piSetPosition, adToolLength) und die kompensierte Position (piOut) des Bausteins SMC_ToolLengthCorr.

Bemerkung: Die Drehung von AxisA während der letzten Bewegung des CNC-Programms hat in diesem Beispiel keine (zusätzliche) Auswirkung auf die kompensierte kartesische Position, da das Werkzeug nur einen Versatz in Z-Richtung hat. Wenn Sie den Versatz des Werkzeugs (in der CNC-Datei, auf der Steuerung im Applikationsordner) um eine Komponente in X- und Y-Richtung erweitern, wird die Drehung von AxisA während der letzten Bewegung eine zusätzliche Auswirkung auf die kompensierte Position haben.